package com.by.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.by.common.group.Save;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.io.Serializable;
import java.util.List;

/**
 * (PurApplication)实体类
 *
 * @author makejava
 * @since 2024-01-09 11:11:38
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("采购申请实体类")
@TableName("pur_application")
public class PurApplication implements Serializable {
    /**
     * 主键
     */
    @ApiModelProperty("id")
    @TableId(value = "id",type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 单据主题
     */
    @ApiModelProperty("单据主题")
    @NotBlank(message = "单据主题不能为空",groups = {Save.class})
    private String subject;
    /**
     * 单据编号
     */
    @ApiModelProperty("单据编号")
    private String code;
    /**
     * 来源单据类型：
       1.销售合同
       2.生产订单
       3.采购订单
       4.项目档案
     */
    @ApiModelProperty("来源单据类型:1.销售合同 2.生产订单 3.采购订单 4.项目档案")
    @TableField("sourceType")
    private Integer sourceType;
    /**
     * 来源单据
     */
    @ApiModelProperty("来源单据")
    private String source;
    /**
     * 采购申请类别：
      1.原材料采购
      2.成品采购
      3.设备采购
     */
    @ApiModelProperty("采购申请类别: 1.原材料采购 2.成品采购 3.设备采购")
    @TableField("purchaseType")
    private Integer purchaseType;
    /**
     * 是否需要询价：0.否 1.是
     */
    @ApiModelProperty("是否需要询价: 0.否 1.是")
    private Integer inquire;

    /**
     * 总数量
     */
    @ApiModelProperty("总数量")
    @TableField("totalSum")
    private Integer totalSum;
    /**
     * 询价状态：
     * 1.待询价
     * 2.询价中
     * 3.询价完成
     * 4.无需询价
     */
    @ApiModelProperty("询价状态：1.待询价 2.询价中 3.询价完成 4.无需询价")
    @TableField("inquireStatus")
    private Integer inquireStatus;
    /**
     * 制单日期
     */
    @ApiModelProperty("制单日期")
    @NotBlank(message = "制单日期不能为空",groups = {Save.class})
    @TableField("docDate")
    private String docDate;
    /**
     * 制单人员
     */
    @ApiModelProperty("制单人员")
    @TableField("docUser")
    private String docUser;
    /**
     * 关联项目
     */
    @ApiModelProperty("关联项目")
    @TableField("pojoCode")
    private String pojoCode;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String note;
    /**
     * 数据创建时间
     */
    @ApiModelProperty("数据创建时间")
    @TableField("createTime")
    private Date createTime;
    /**
     * 数据更新时间
     */
    @ApiModelProperty("数据更新时间")
    @TableField("updateTime")
    private Date updateTime;
    /**
     * 总金额
     */
    @ApiModelProperty("总金额")
    private Double amount;

    /**
     * 采购状态：
     * 1.未采购
     * 2.部分采购
     * 3.采购完成
     */
    @ApiModelProperty("采购状态：1.未采购 2.部分采购 3.采购完成")
    @TableField("applicationStatus")
    private Integer applicationStatus;
    /**
     * 逻辑删除：0.未删除 1.已删除
     */
    @ApiModelProperty("逻辑删除：0.未删除 1.已删除")
    private int isdel;

    @ApiModelProperty("采购申请明细列表")
    @TableField(exist = false)
    List<PurApplicationDetails> purApplicationDetailsList;

    @ApiModelProperty("采购申请附件列表")
    @TableField(exist = false)
    List<PurAttachment> purAttachmentList;
















}

